#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
验证时间转换：2025-11-05 10:31:42 和 1762331503574 是否为同一时刻的荷兰时间
"""

from datetime import datetime, timezone, timedelta
import pytz

def main():
    # 给定的两个时间值
    datetime_str = "2025-11-05 10:31:42"
    timestamp_ms = 1762331503574
    
    print("=== 时间验证对比 ===")
    print(f"日期时间字符串: {datetime_str}")
    print(f"毫秒时间戳: {timestamp_ms}")
    
    # 1. 将毫秒时间戳转换为datetime（UTC）
    timestamp_seconds = timestamp_ms / 1000
    utc_datetime = datetime.fromtimestamp(timestamp_seconds, tz=timezone.utc)
    print(f"\n毫秒时间戳转换的UTC时间: {utc_datetime.strftime('%Y-%m-%d %H:%M:%S')}")
    
    # 2. 将UTC时间转换为荷兰时间（阿姆斯特丹时区）
    amsterdam_tz = pytz.timezone('Europe/Amsterdam')
    amsterdam_datetime = utc_datetime.astimezone(amsterdam_tz)
    print(f"转换为荷兰时间: {amsterdam_datetime.strftime('%Y-%m-%d %H:%M:%S')}")
    
    # 3. 将字符串datetime解析为荷兰时间
    # 假设字符串表示的是荷兰本地时间
    parsed_datetime = datetime.strptime(datetime_str, '%Y-%m-%d %H:%M:%S')
    # 本地化到阿姆斯特丹时区
    localized_datetime = amsterdam_tz.localize(parsed_datetime)
    print(f"\n字符串解析的荷兰时间: {localized_datetime.strftime('%Y-%m-%d %H:%M:%S')}")
    
    # 4. 对比两个时间
    print(f"\n=== 对比结果 ===")
    print(f"时间戳转换的荷兰时间: {amsterdam_datetime.strftime('%Y-%m-%d %H:%M:%S')}")
    print(f"字符串表示的荷兰时间: {localized_datetime.strftime('%Y-%m-%d %H:%M:%S')}")
    
    # 计算差异（秒）
    time_diff = abs((amsterdam_datetime - localized_datetime).total_seconds())
    print(f"时间差异: {time_diff:.1f} 秒")
    
    if time_diff < 1:
        print("✓ 两个时间值表示的是同一时刻！")
    else:
        print("✗ 两个时间值不是同一时刻！")
    
    # 5. 额外验证：转换为UTC时间对比
    print(f"\n=== UTC时间对比 ===")
    utc_from_string = localized_datetime.astimezone(timezone.utc)
    print(f"字符串时间转换的UTC: {utc_from_string.strftime('%Y-%m-%d %H:%M:%S')}")
    print(f"时间戳转换的UTC: {utc_datetime.strftime('%Y-%m-%d %H:%M:%S')}")
    
    utc_diff = abs((utc_from_string - utc_datetime).total_seconds())
    print(f"UTC时间差异: {utc_diff:.1f} 秒")

if __name__ == "__main__":
    main()